TO_ENSURE_PATH = [
    'log/',
    'log/credit/',
    'log/fraud/',
    'log/log_pic/',
    'log/main_png',
    'log/opt/',
    'log/run_main/',
    'log/process_relation/',
    'cache/',
    'models/',
    'models/fraud/',
    'models/credit/',
]

FACE_FEATURES = {
    "face_rela_width",
    'face_rela_height',
    'face_rela_area',
    'face_rela_height_coord',
    'face_rela_width_coord',
    'face_pitch_angle',
    'face_roll_angle',
    'face_yaw_angle',
    'face_number',
    'face_quality',
    'face_visual_gender',
    'face_visual_age',
    'face_male_score',
    'face_female_score',
    'face_emotion_angel',
    'face_emotion_disgust',
    'face_emotion_fear',
    'face_emotion_happiness',
    "face_emotion_neutral",
    "face_emotion_sadness",
    "face_emotion_surprise",
    "face_health",
    "face_stain",
    "face_acne",
    "dark_circle",
    "face_smile",
    "face_eyebrow_pupil_distance",
    "face_pupil_nose_bottom_distance",
    "face_nose_bottom_mouth_distance",
    "face_jaw_max_distance",
    "face_aspect_ratio",
    "face_lower_lip_bottom_jaw_distance",
    "face_ear_distance",
    "blurness",
    "ethnicity",
    "face_rect_top",
    "face_rect_left",
    "face_rect_height",
    "face_rect_width",
}

EYES_FEATURES = {
    'left_eye_no_glass_open',
    'left_eye_normal_glass_close',
    'left_eye_normal_glass_open',
    'left_eye_dark_glasses',
    'left_eye_no_glass_close',
    'left_eye_occlusion',
    'left_eyeball_bias_horizontal',
    'left_eyeball_bias_vertical',
    'left_eye_rela_size',
    'left_eye_rela_width',
    'left_eye_Intraocular_angle',
    'left_eye_canthus_radian',
    'right_eye_no_glass_open',
    'right_eye_normal_glass_close',
    'right_eye_normal_glass_open',
    'right_eye_dark_glasses',
    'right_eye_no_glass_close',
    'right_eye_occlusion',
    'right_eyeball_bias_horizontal',
    'right_eyeball_bias_vertical',
    'right_eye_rela_size',
    'right_eye_width',
    'right_eye_Intraocular_angle',
    'right_eye_canthus_radian',
    'eye_rela_distance',
    'eye_brow_left_rela_length',
    'eye_brow_left_rela_height',
    'eye_brow_right_rela_length',
    'eye_brow_right_rela_height',
    'eye_brow_tip_distance',
    'eye_brow_left_corner_radian',
    'eye_brow_right_corner_radian',
    'left_eye_gaze_vector_x',
    'left_eye_gaze_vector_y',
    'left_eye_gaze_vector_z',
    'left_eye_gaze_position_x',
    'left_eye_gaze_position_y',
    'right_eye_gaze_vector_x',
    'right_eye_gaze_vector_y',
    'right_eye_gaze_vector_z',
    'right_eye_gaze_position_x',
    'right_eye_gaze_position_y',
}

NOSE_AND_MOUTH_FEATURES = {
    'nose_rela_area',
    'nose_rela_width',
    'nose_apex_rela_width',
    'nose_rela_length',
    'nose_wing_max_length',
    'nose_apex_rela_coord_x',
    'nose_apex_rela_coord_y',
    'mouth_rela_size',
    'mouth_left_corner_radian',
    'mouth_right_corner_radian',
    'mouth_upper_lip_thickness',
    'mouth_lower_lip_thickness',
    'mouth_centerpoint_rela_coord_x',
    'mouth_centerpoint_rela_coord_y',
    'mouth_surgical_mask_or_respirator',
    'mouth_other_occlusion',
    'mouth_close',
    'mouth_open',
}

OTHER_FEATURES = {
    'shirtless',
    'with_hat',
    'with_earphone',
    'work_card',
    'necklace',
    'with_tie',
    'tattoo',
    'in_car',
    'up_down_beds',
    'bald',
    'hairdye',
}

GRAPH_FEATURES = {
    'height',
    'width',
    'red_mean',
    'green_mean',
    'blue_mean',
    'hue_mean',
    'saturation_mean',
    'value_mean',
    'whole_mean',
    'std_r',
    'std_g',
    'std_b',
    'std_h',
    'std_s',
    'std_v',
    'clarity',
}

MARK_X = {
    'contour_left1',
    'contour_left2',
    'contour_left3',
    'contour_left4',
    'contour_left5',
    'contour_left6',
    'contour_left7',
    'contour_left8',
    'contour_left9',
    'contour_left10',
    'contour_left11',
    'contour_left12',
    'contour_left13',
    'contour_left14',
    'contour_left15',
    'contour_left16',
    'contour_chin',
    'contour_right1',
    'contour_right2',
    'contour_right3',
    'contour_right4',
    'contour_right5',
    'contour_right6',
    'contour_right7',
    'contour_right8',
    'contour_right9',
    'contour_right10',
    'contour_right11',
    'contour_right12',
    'contour_right13',
    'contour_right14',
    'contour_right15',
    'contour_right16',
    'left_eyebrow_left_corner',
    'left_eyebrow_upper_left_quarter',
    'left_eyebrow_upper_middle',
    'left_eyebrow_upper_right_quarter',
    'left_eyebrow_upper_right_corner',
    'left_eyebrow_lower_left_quarter',
    'left_eyebrow_lower_middle',
    'left_eyebrow_lower_right_quarter',
    'left_eyebrow_lower_right_corner',
    'right_eyebrow_right_corner',
    'right_eyebrow_upper_left_corner',
    'right_eyebrow_upper_left_quarter',
    'right_eyebrow_upper_middle',
    'right_eyebrow_upper_right_quarter',
    'right_eyebrow_lower_left_corner',
    'right_eyebrow_lower_left_quarter',
    'right_eyebrow_lower_middle',
    'right_eyebrow_lower_right_quarter',
    'nose_bridge1',
    'nose_bridge2',
    'nose_bridge3',
    'nose_tip',
    'nose_left_contour1',
    'nose_left_contour2',
    'nose_left_contour3',
    'nose_left_contour4',
    'nose_left_contour5',
    'nose_middle_contour',
    'nose_right_contour1',
    'nose_right_contour2',
    'nose_right_contour3',
    'nose_right_contour4',
    'nose_right_contour5',
    'left_eye_left_corner',
    'left_eye_upper_left_quarter',
    'left_eye_top',
    'left_eye_upper_right_quarter',
    'left_eye_right_corner',
    'left_eye_lower_right_quarter',
    'left_eye_bottom',
    'left_eye_lower_left_quarter',
    'left_eye_pupil',
    'left_eye_center',
    'right_eye_left_corner',
    'right_eye_upper_left_quarter',
    'right_eye_top',
    'right_eye_upper_right_quarter',
    'right_eye_right_corner',
    'right_eye_lower_right_quarter',
    'right_eye_bottom',
    'right_eye_lower_left_quarter',
    'right_eye_pupil',
    'right_eye_center',
    'mouth_left_corner',
    'mouth_upper_lip_left_contour1',
    'mouth_upper_lip_left_contour2',
    'mouth_upper_lip_left_contour3',
    'mouth_upper_lip_left_contour4',
    'mouth_right_corner',
    'mouth_upper_lip_right_contour1',
    'mouth_upper_lip_right_contour2',
    'mouth_upper_lip_right_contour3',
    'mouth_upper_lip_right_contour4',
    'mouth_upper_lip_top',
    'mouth_upper_lip_bottom',
    'mouth_lower_lip_right_contour1',
    'mouth_lower_lip_right_contour2',
    'mouth_lower_lip_right_contour3',
    'mouth_lower_lip_left_contour1',
    'mouth_lower_lip_left_contour2',
    'mouth_lower_lip_left_contour3',
    'mouth_lower_lip_top',
    'mouth_lower_lip_bottom',
}

MARK_Y = {
    'contour_left1',
    'contour_left2',
    'contour_left3',
    'contour_left4',
    'contour_left5',
    'contour_left6',
    'contour_left7',
    'contour_left8',
    'contour_left9',
    'contour_left10',
    'contour_left11',
    'contour_left12',
    'contour_left13',
    'contour_left14',
    'contour_left15',
    'contour_left16',
    'contour_chin',
    'contour_right1',
    'contour_right2',
    'contour_right3',
    'contour_right4',
    'contour_right5',
    'contour_right6',
    'contour_right7',
    'contour_right8',
    'contour_right9',
    'contour_right10',
    'contour_right11',
    'contour_right12',
    'contour_right13',
    'contour_right14',
    'contour_right15',
    'contour_right16',
    'left_eyebrow_left_corner',
    'left_eyebrow_upper_left_quarter',
    'left_eyebrow_upper_middle',
    'left_eyebrow_upper_right_quarter',
    'left_eyebrow_upper_right_corner',
    'left_eyebrow_lower_left_quarter',
    'left_eyebrow_lower_middle',
    'left_eyebrow_lower_right_quarter',
    'left_eyebrow_lower_right_corner',
    'right_eyebrow_right_corner',
    'right_eyebrow_upper_left_corner',
    'right_eyebrow_upper_left_quarter',
    'right_eyebrow_upper_middle',
    'right_eyebrow_upper_right_quarter',
    'right_eyebrow_lower_left_corner',
    'right_eyebrow_lower_left_quarter',
    'right_eyebrow_lower_middle',
    'right_eyebrow_lower_right_quarter',
    'nose_bridge1',
    'nose_bridge2',
    'nose_bridge3',
    'nose_tip',
    'nose_left_contour1',
    'nose_left_contour2',
    'nose_left_contour3',
    'nose_left_contour4',
    'nose_left_contour5',
    'nose_middle_contour',
    'nose_right_contour1',
    'nose_right_contour2',
    'nose_right_contour3',
    'nose_right_contour4',
    'nose_right_contour5',
    'left_eye_left_corner',
    'left_eye_upper_left_quarter',
    'left_eye_top',
    'left_eye_upper_right_quarter',
    'left_eye_right_corner',
    'left_eye_lower_right_quarter',
    'left_eye_bottom',
    'left_eye_lower_left_quarter',
    'left_eye_pupil',
    'left_eye_center',
    'right_eye_left_corner',
    'right_eye_upper_left_quarter',
    'right_eye_top',
    'right_eye_upper_right_quarter',
    'right_eye_right_corner',
    'right_eye_lower_right_quarter',
    'right_eye_bottom',
    'right_eye_lower_left_quarter',
    'right_eye_pupil',
    'right_eye_center',
    'mouth_left_corner',
    'mouth_upper_lip_left_contour1',
    'mouth_upper_lip_left_contour2',
    'mouth_upper_lip_left_contour3',
    'mouth_upper_lip_left_contour4',
    'mouth_right_corner',
    'mouth_upper_lip_right_contour1',
    'mouth_upper_lip_right_contour2',
    'mouth_upper_lip_right_contour3',
    'mouth_upper_lip_right_contour4',
    'mouth_upper_lip_top',
    'mouth_upper_lip_bottom',
    'mouth_lower_lip_right_contour1',
    'mouth_lower_lip_right_contour2',
    'mouth_lower_lip_right_contour3',
    'mouth_lower_lip_left_contour1',
    'mouth_lower_lip_left_contour2',
    'mouth_lower_lip_left_contour3',
    'mouth_lower_lip_top',
    'mouth_lower_lip_bottom',
}

relations = {
    "face_sim": FACE_FEATURES,
    "eyes_sim": EYES_FEATURES,
    "nose_and_mouth_sim": NOSE_AND_MOUTH_FEATURES,
    "other_sim": OTHER_FEATURES,
    "graph_sim": GRAPH_FEATURES,
}
